/*
 * VisualClassComponentClase.h
 *
 *  Created on: May 29, 2013
 *      Author: root
 */

#ifndef VISUALCLASSCOMPONENTCLASE_H_
#define VISUALCLASSCOMPONENTCLASE_H_

#include "gui/VisualComponents/VisualClassesComponent.h"

class VisualClassComponentClase : public VisualClassesComponent {
public:
	VisualClassComponentClase(Diagram *diagram);
	VisualClassComponentClase(const VisualClassComponentClase& other);
	virtual ~VisualClassComponentClase();

	InfluenceArea getInfluenceArea();
	virtual VisualClassesComponent *getCopy(Diagram* diagram);
	void draw(Cairo::RefPtr<Cairo::Context> ptrContext);
	void draw_text(Cairo::RefPtr<Cairo::Context> ptrContext, int x, int y,
			int rectangle_width, int rectangle_height, std::string& name, int r,
			int g, int b);
	void draw_text_attributes(Cairo::RefPtr<Cairo::Context> ptrContext, int x,
			int y, int rectangle_width, int rectangle_height, int r, int g,
			int b);
	void draw_text_methods(Cairo::RefPtr<Cairo::Context> ptrContext, int x,
			int y, int rectangle_width, int rectangle_height, int r, int g,
			int b);

	virtual VisualComponentConector *getConectorParaIdDeMapeoDeEntidad(int i);
	virtual VisualComponentConector *getConectorParaIdDeMapeoDeRelacion(int i);

private:
	int get_maxWidthText(Cairo::RefPtr<Cairo::Context> ptrContext);
	int get_maxHeightTextAttributes(Cairo::RefPtr<Cairo::Context> ptrContext);
	int get_maxHeightTextMethods(Cairo::RefPtr<Cairo::Context> ptrContext);
	//InfluenceArea points
	int x0;
	int y0;
	int  xf;
	int yf;
};

#endif /* VISUALCLASSCOMPONENTCLASE_H_ */
